#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct TRIA6StrainData
{
    SG::DataStructure::Common::Id   m_eId      = 0;      /// Element identification number
    char                            m_TERM[4]  = { 0 };  /// Character string "CEN/"
    SG::DataStructure::Common::Id   m_GRID[4]  = { 0 };  /// Number active grids ID or grid ID
    SG::DataStructure::Common::Real m_FD1[4]   = { 0 };  /// Z1 = Fiber distance
    SG::DataStructure::Common::Real m_X1[4]    = { 0 };  /// Normal in x         at Z1
    SG::DataStructure::Common::Real m_Y1[4]    = { 0 };  /// Normal in y         at Z1
    SG::DataStructure::Common::Real m_TXY1[4]  = { 0 };  /// Shear  in xy        at Z1
    SG::DataStructure::Common::Real m_FD2[4]   = { 0 };  /// Z2 = Fiber distance
    SG::DataStructure::Common::Real m_X2[4]    = { 0 };  /// Normal in x         at Z2
    SG::DataStructure::Common::Real m_Y2[4]    = { 0 };  /// Normal in y         at Z2
    SG::DataStructure::Common::Real m_TXY2[4]  = { 0 };  /// Shear  in xy        at Z2
    SG::DataStructure::Common::Id   m_domainId = 0;      /// Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const TRIA6StrainData& val1, const TRIA6StrainData& val2);

///< @brief 排序使用
DECLSPEC bool operator< (const TRIA6StrainData& a, const TRIA6StrainData& b);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
